// pages/my/myCollect/myCollect.js
import { getFavoriteRecipes } from '../../api/favorite';
import { store } from '../../utils/store';
const app = getApp(); // 获取 app.js 的实例
Page({

  /**
   * 页面的初始数据
   */
  data: {
    recipes: [], // 原始数据
    filteredRecipes: [], // 用于存储筛选后的结果
    isLoggedIn: false, // 表示登录状态
    showLoginModal: false, // 控制登录模态框的显示
    searchQuery: '' // 存储搜索输入
  },

  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad(options) {
    const res = await app.checkLoginStatus();
    if (res) {
      this.checkLoginStatus();
    }
  },

  onShow() {
    this.checkLoginStatus();
  },

  checkLoginStatus() {
    const userInfo = store.getUserInfo();
    console.log("userInfo",userInfo);
    if (userInfo && userInfo.userId) {
      this.setData({ isLoggedIn: true, showLoginModal: false });
      this.fetchFavoriteRecipes(userInfo.userId);
    } else {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      this.setData({ showLoginModal: true });
    }
  },
  async fetchFavoriteRecipes(userId) {
    try {
      const res = await getFavoriteRecipes(userId);
      if (res && res.data) {
        this.setData({ recipes: res.data, filteredRecipes: res.data }); // 存储原始数据和初始筛选结果
        wx.setStorageSync('favoriteRecipes', res.data); // 存储到本地缓存
      }
    } catch (error) {
      console.error('获取收藏列表失败:', error);
      wx.showToast({
        title: '获取收藏列表失败',
        icon: 'none'
      });
    }
  },

  // 登录成功回调
  onLoginSuccess() {
    console.log("收藏页面登录成功回调:",);
    console.log("userId:",store.getUserInfo().userId);
    this.setData({ showLoginModal: false });
    this.fetchFavoriteRecipes(store.getUserInfo().userId); // 重新获取收藏列表
  },

  // 关闭登录模态框
  closeLoginModal() {
    this.setData({ showLoginModal: false });
  },

  // 更新搜索输入
  updateSearchQuery(event) {
    const query = event.detail.value;
    this.setData({ searchQuery: query });
    this.searchRecipes(query); // 实时搜索
  },

  // 搜索功能
  searchRecipes(query) {
    const { recipes } = this.data; // 使用原始数据进行搜索

    const filteredRecipes = recipes.filter(recipe => 
      recipe.title.includes(query) // 根据标题进行筛选
    );

    this.setData({ filteredRecipes }); // 更新筛选后的结果
  },

  // 跳转到菜谱详情页
  navigateToDetail(event) {
    const recipeId = event.currentTarget.dataset.recipeid; // 获取菜谱ID
    wx.navigateTo({
      url: `/pages/recipeDetail/recipeDetail?recipeId=${recipeId}` // 跳转到详情页
    });
  },

  // 清空搜索
  clearSearch() {
    this.setData({ 
      searchQuery: '',
      filteredRecipes: this.data.recipes // 恢复显示所有收藏
    });
  }
})